Embedded applications within dedicated devices frequently require timing operations for diverse functions. Often, this requirement is met by utilizing independent timer resources. Many commonly available devices for handling embedded applications, such as programmable controllers, are configured with dedicated internal timing modules to address such a need.
Timing operations include, but are not limited to: measuring elapsed time; providing notification of the elapsing of a predetermined amount of time; providing periodic notifications of the elapsing of predetermined time intervals; notification that a particular time has been reached (also referred to as “time-keeping”); and answering requests for the current time (also referred to as a “real-time clock”). A non-limiting example of notification of the elapsing of a predetermined amount of time is a signal that 30 seconds have elapsed since sending a message without receiving a response, in order to terminate an open connection that has “timed-out”. A non-limiting example of notification that a particular time has been reached is an alarm that it is now 1:30 am, a time designated to perform a scheduled data backup.
A current example of a controller configured with dedicated internal timing modules is the National Semiconductor PC87591L-N05 Mobile Embedded Controller, as described in the published National Semiconductor datasheet for the controller. This device contains two separate timing modules, including a 16-bit “Multi-function timer” (MFT16) and a “Timer and Watchdog” (TWD) module. These modules are intended to support a variety of different timing purposes and functions. The MFT16 module, for example, contains two 16-bit programmable timers, which may be used independently for general-purpose timing requirements. The TWD, on the other hand, is generally used for timing periodic functions and for performing watchdog protection to guard against erroneous software execution (for example, a software routine that does not handle a particular condition and thus does not terminate properly). Other devices similar to the PC87591L-N05 Mobile Embedded Controller are also generally configured with timer resources for a variety of timing-related purposes.
It sometimes happens, however, that a particular application for a dedicated controller exhausts the available timer resources present in a device. For example, the PC87591L-N05 Mobile Embedded Controller as detailed above has three independent timer resources. If a fourth timer resource was needed by an application, this particular device would ordinarily be unable to fully support that application. This can have undesirable consequences for a device that lacks sufficient timer resources to fully support a field-downloaded application that requires timing resources in excess of that which the device normally has available.
There is thus a need for, and it would be highly advantageous to have, an apparatus and method where a dedicated controller device for embedded applications can support the need for timer resources in excess of the normally available timer resources.